//
//  Student.m
//  RunTime
//
//  Created by 吴志勇 on 2020/3/21.
//  Copyright © 2020 wzy. All rights reserved.
//

#import "Student.h"
#import <objc/message.h>

@implementation Student

//
void aaa(id self, SEL _cmd){
    
}


//任何方式默认都是两个隐氏参数，self，_cmd:当前函数方法编号
//什么时候调用:只要一个对象调用一个未实现的方法就会调用这个方法，进行处理
//作用:动态添加方法，处理为实现方法
+ (BOOL)resolveInstanceMethod:(SEL)sel{
    if (sel == NSSelectorFromString(@"eat")) {
        
        /**
            第一个参数cls:给哪个类添加方法
            第二个参数sel:添加什么方法
            第三个参数imp:方法实现 =>函数 => 函数入口 =>函数名
            第四个参数types：方法类型 v没有返回值 @id类型 :sel
         */
        class_addMethod(self, sel, (IMP)aaa, "v@:");
    }
    
    return [super resolveInstanceMethod:sel];
}


@end
